<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:c="http://java.sun.com/jsp/jstl/core"
	xmlns:p="http://primefaces.org/ui">

<h:body>
	<ui:composition template="/pages/template.xhtml">
		<ui:define name="conteudo">
			<h2 align="center">Sua lista de compras</h2>
			
			<p:messages id="message_carrinho"/>
			<h:form id="form_anun">
				<p:panelGrid styleClass="semBorda">
					<p:row>
						<p:column colspan="2">
							<p:outputLabel for="anunci" value="Filtrar produtos lista por anunciante:"></p:outputLabel>
						</p:column>
						<p:column>
							<p:selectOneMenu value="#{carrinhoBean.anunciante.idAnunciante}" validatorMessage="Selecione o primeiro anunciante"
								id="anunci" required="true" requiredMessage="Selecione o primeiro anunciante" >
								<p:ajax update=":message_carrinho @form :form_lista_carrinho" listener="#{carrinhoBean.filtrarCarrinhoPorAnunciante}" > </p:ajax>
								<f:selectItem itemLabel="Todos os anunciantes" itemValue="0"  ></f:selectItem>
								<f:selectItems value="#{carrinhoBean.listAnunciantes}" var="a" itemLabel="#{a.nome}" itemValue="#{a}" >
								</f:selectItems>
							</p:selectOneMenu>
						</p:column>
						
						<p:column>
								<p:commandButton value="Comparar Lista" action="#{compararListaBean.novaComparacao}" ajax="false"/>
						</p:column>
					</p:row>
				</p:panelGrid>
			</h:form>
			
			<h:form>
				<c:if test="#{userSession != null}">
				<p:panelGrid styleClass="semBorda">
					<p:row>
						<p:column> 
							<p:outputLabel for="nomeLista" value="Nome da lista:" />
						</p:column>
						<p:column>
							<p:inputText id="nomeLista" value="#{listaComprasBean.listaCompras.nomeLista}" 
							required="true" requiredMessage="Nome da lista Obrigatorio"/>
						</p:column>
						<p:column>
							<p:commandButton value="Salvar" action="#{listaComprasBean.salvarLista}"
							ajax="false" update=":message_carrinho @form">
								<f:setPropertyActionListener target="#{listaComprasBean.lProdutos}" value="#{carrinhoBean.carrinho}"/>
							</p:commandButton>
						</p:column>
					</p:row>
				</p:panelGrid>
				</c:if>
			</h:form>
			
			<h:form id="form_lista_carrinho">
<!-- ************************************************** Tabela do Carrinho com todos os produtos selecionados ********************************************** -->
				<!-- Apresentar o carrinho do cliente com os produtos mais baratos entre todos os anunciantes -->
				<c:if test="#{carrinhoBean.mostrarCarrinhoFiltro == 'false'}">
					<p:dataTable id="produtosLista" var="lista" 
						value="#{carrinhoBean.carrinho}" rows="20" paginator="true"
						rowsPerPageTemplate="15,30,45" emptyMessage="Nenhum produto na sua lista." >
					
						<f:facet name="header">
							<h:outputText value="Produtos na sua lista" />
						</f:facet>
						<p:column exportable="false">
							<f:facet name="header">Imagem Produto:</f:facet>
							<h:commandLink title="Ver detalhes do Produto" action="#{vitrineBean.detalhesProduto}" immediate="true">
								<!-- Mostrar a imagem que foi pega pelo Crawler e esta salva somente o link -->
								<p:graphicImage value="#{lista.produto.imagem}" width="100px"
									alt="#{lista.produto.nome}" rendered="#{lista.produto.pegoEmSite == 'true'}"/>
								<!-- Mostrar a imagem que esta salva no servidor -->
								<p:graphicImage value="../image/#{lista.produto.imagem}" width="100px"
									alt="#{lista.produto.nome}" rendered="#{lista.produto.pegoEmSite == ' '}" />
								<f:setPropertyActionListener target="#{vitrineBean.produto.id}" value="#{lista.produto.id}"/>
							</h:commandLink>
						</p:column>
						
						<p:column>
							<f:facet name="header">Nome produto:</f:facet>
							<h:outputText value="#{lista.produto.nome}" />
						</p:column>
						
						<p:column >
							<f:facet name="header">Quantidade:</f:facet>
							<p:inputText value="#{lista.qtde}" id="qtde" required="true" requiredMessage="Informe uma quantidade" maxlength="3"
								validatorMessage="Quantidade invalida!" converterMessage="Numero invalido">
								<p:ajax render="@form :form_carrinho :message_carrinho" process="@form"
									update="@form :form_carrinho :message_carrinho" listener="#{carrinhoBean.atualizarCarrinho}"/>
								<f:validateLength minimum="1" maximum="3"></f:validateLength>
								<f:convertNumber integerOnly="true" minIntegerDigits="1"></f:convertNumber>
								<f:validateDoubleRange minimum="1" maximum="99"></f:validateDoubleRange>
							</p:inputText>
						</p:column>
						
						<p:column>
							<f:facet name="header">Menor valor:</f:facet>
							Preco: R$  <h:outputText value="#{lista.produto.precoMaisBarato}">
								<f:converter converterId="valorConverter"></f:converter>
								<f:convertNumber minFractionDigits="2" locale="PT_BR"></f:convertNumber>
							</h:outputText>
						</p:column>
						
						<p:column>
							<f:facet name="header">Maior valor:</f:facet>
							Preco: R$  <h:outputText value="#{lista.produto.precoMaisCaro}">
								<f:converter converterId="valorConverter"></f:converter>
								<f:convertNumber minFractionDigits="2" locale="PT_BR"></f:convertNumber>
							</h:outputText>
						</p:column>
						<p:column>
							<f:facet name="header">Valor Total:</f:facet>
							Total: R$  <h:outputText value="#{lista.produto.precoMaisBarato * lista.qtde}">
								<f:converter converterId="valorConverter"></f:converter>
								<f:convertNumber minFractionDigits="2" locale="PT_BR"></f:convertNumber>
							</h:outputText>
						</p:column>
						<p:column exportable="false">
							<f:facet name="header">Remover:</f:facet>
							<h:commandLink value="Remover" action="#{carrinhoBean.removerProdutoCarrinho}" immediate="true">
								<p:ajax update=":form_carrinho @form"></p:ajax>
								
								<f:setPropertyActionListener target="#{carrinhoBean.id}" value="#{lista.produto.id}"></f:setPropertyActionListener>
							</h:commandLink>
						</p:column>
						
						
						<f:facet name="footer">
							<h:outputText value="TOTAL Compra: R$ " />
							<h:outputText value="#{carrinhoBean.total}">
								<f:converter converterId="valorConverter"></f:converter>
								<f:convertNumber minFractionDigits="2" locale="PT_BR"></f:convertNumber>
							</h:outputText>
						</f:facet>
					</p:dataTable>
					<h:panelGrid columns="2">  
					    <p:panel header="Exportar produtos da lista">  
					        <h:commandLink>  
					            <p:graphicImage value="../resources/images/excel.png" width="40px" height="40px" />  
					            <p:dataExporter type="xls" target="produtosLista" fileName="carrinho" encoding="ISO-8859-1" />  
					        </h:commandLink>  
					  
					        <h:commandLink>  
					            <p:graphicImage value="../resources/images/pdf.png" width="40px" height="40px"/>  
					            <p:dataExporter type="pdf" target="produtosLista" fileName="carrinho" encoding="ISO-8859-1" />  
					        </h:commandLink>  
					    </p:panel> 
	     			</h:panelGrid>
				</c:if>
				
<!-- ************************************************** Tabela do Carrinho com filtro para anunciante********************************************** -->
				<!-- Apresentar o carrinho filtrado para o anunciante selecionado pelo usuario -->
				
				<c:if test="#{carrinhoBean.mostrarCarrinhoFiltro == 'true'}">
					<p:dataTable id="produtosLista" var="lista" 
							value="#{carrinhoBean.listFiltroAnunciante}" rows="20" paginator="true"
							rowsPerPageTemplate="10,20,30" emptyMessage="Nenhum produto na sua lista." >
					
						<f:facet name="header">
							<h:outputText value="Produtos na sua lista para o Anunciante: #{carrinhoBean.anunciante.razaoSocial}" />
						</f:facet>
						<p:column exportable="false">
							<f:facet name="header">Imagem Produto:</f:facet>
							<h:commandLink title="Ver detalhes do Produto" action="#{vitrineBean.detalhesProduto}" immediate="true">
								<!-- Mostrar a imagem que foi pega pelo Crawler e esta salva somente o link -->
								<p:graphicImage value="#{lista.produto.imagem}" width="100px"
									alt="#{lista.produto.nome}" rendered="#{lista.produto.pegoEmSite == 'true'}"/>
								<!-- Mostrar a imagem que esta salva no servidor -->
								<p:graphicImage value="../image/#{lista.produto.imagem}" width="100px"
									alt="#{lista.produto.nome}" rendered="#{lista.produto.pegoEmSite == ' '}" />
										<f:setPropertyActionListener target="#{vitrineBean.produto.id}" value="#{lista.produto.id}"/>
							</h:commandLink>
						</p:column>
						
						<p:column>
							<f:facet name="header">Nome produto:</f:facet>
							<h:outputText value="#{lista.produto.nome}" />
						</p:column>
						
						<p:column>
							<f:facet name="header">Quantidade:</f:facet>
							<p:inputText value="#{lista.qtde}" id="qtde" required="true" requiredMessage="Informe uma quantidade" maxlength="3"
								validatorMessage="Quantidade invalida!" converterMessage="Numero invalido">
								<p:ajax render="@form :message_carrinho" process="@form"
									update="@form :form_carrinho :message_carrinho" listener="#{carrinhoBean.atualizarCarrinho}"/>
								<f:validateLength minimum="1" maximum="3"></f:validateLength>
								<f:convertNumber integerOnly="true" minIntegerDigits="1"></f:convertNumber>
								<f:validateDoubleRange minimum="1" maximum="99"></f:validateDoubleRange>
							</p:inputText>
						</p:column>
						
						<p:column>
							<f:facet name="header">Preco De:</f:facet>
							Preco: R$ <h:outputText value="#{lista.precoDe}">
								<f:converter converterId="valorConverter"></f:converter>
								<f:convertNumber minFractionDigits="2" locale="PT_BR"></f:convertNumber>
							</h:outputText>
						</p:column>
						<p:column>
							Preco: R$ <f:facet name="header">Preco Por:</f:facet>
							<h:outputText value="#{lista.precoPor}">
								<f:converter converterId="valorConverter"></f:converter>
								<f:convertNumber minFractionDigits="2" locale="PT_BR"></f:convertNumber>
							</h:outputText>
						</p:column>
						
						<p:column>
							Total: R$ <f:facet name="header">Total (Preco Por * qtde):</f:facet>
							<h:outputText value="#{lista.precoPor * lista.qtde}">
								<f:converter converterId="valorConverter"></f:converter>
								<f:convertNumber minFractionDigits="2" locale="PT_BR"></f:convertNumber>
							</h:outputText>
						</p:column>
						
						<f:facet name="footer">
							<h:outputText value="TOTAL Compra: R$ " />
							<h:outputText value="#{carrinhoBean.totalListaFiltro}">
								<f:converter converterId="valorConverter"></f:converter>
								<f:convertNumber minFractionDigits="2" locale="PT_BR"></f:convertNumber>
							</h:outputText>
						</f:facet>
					</p:dataTable>
					<h:panelGrid columns="2">  
					    <p:panel header="Exportar produtos da lista">  
					      <h:commandLink>  
					            <p:graphicImage value="../resources/images/excel.png" width="40px" height="40px" />  
					            <p:dataExporter type="xls" target="produtosLista" fileName="carrinho" encoding="ISO-8859-1" />  
					        </h:commandLink>  
					  
					        <h:commandLink>  
					            <p:graphicImage value="../resources/images/pdf.png" width="40px" height="40px"/>  
					            <p:dataExporter type="pdf" target="produtosLista" fileName="carrinho" encoding="ISO-8859-1" />  
					        </h:commandLink>  
					    </p:panel> 
	     			</h:panelGrid>
				</c:if>
			</h:form>
			
		</ui:define>
	</ui:composition>
</h:body>
</html>